/* eslint-disable no-shadow */

export function search({ search, pg }) {
  return RSocket.rs({
    // route: 'app.dicts.region.list',
    route: 'dicts.region.items',
    args: { search, pg },
  });
}

export function count({ search }) {
  return RSocket.rr({
    // route: 'app.dicts.region.list.count',
    route: 'dicts.region.items.count',
    args: { search },
  });
}

// /**
//  * 获取城市列表
//  * @returns 城市列表
//  */
// export function cities() {
//   return RSocket.rs({
//     route: 'dicts.region.items.top',
//     args: {},
//   });
// }

// /**
//  * 获取城市下的区域数量
//  * @param {string} cityId 城市Id
//  * @param {object} args   查询参数
//  * @returns 区域数量
//  */
// export function count(cityId, { search }) {
//   return RSocket.rr({
//     route: `dicts.region.items.${cityId}.children.count`,
//     args: { search },
//   });
// }

// /**
//  * 获取城市下的区域列表
//  * @param {string} cityId 城市Id
//  * @param {object} args   查询和分页参数
//  * @returns 区域列表
//  */
// export function search(cityId, { search, pg }) {
//   return RSocket.rs({
//     route: `dicts.region.items.${cityId}.children`,
//     args: {
//       search,
//       pg,
//     },
//   });
// }

/**
 * 获取城市或区域
 * @param {string} id 城市或区域Id
 * @returns 城市或区域
 */
export function get(id) {
  return RSocket.rr({
    route: `dicts.region.items.${id}`,
  });
}

/**
 * 获取热门站点
 * @param {string} id 城市或区域Id
 * @returns 城市或区域
 */
export function getHotRegion() {
  return RSocket.rs({
    route: 'dicts.hotRegion.items',
    search: {
      pg: {
        size: 999,
      },
    },
  });
}

/**
 * 修改城市或区域
 * @param {object} data 城市或区域
 * @returns 修改后的数据
 */
export function update(data) {
  return RSocket.rr({
    route: 'dicts.region.items.update',
    data,
  });
}

/**
 * 创建城市或区域
 * @param {*} data 城市或区域
 * @returns 创建后的城市或区域
 */
export function create(data) {
  return RSocket.rr({
    route: 'dicts.region.items.create',
    data,
  });
}

/**
 * 删除城市或区域
 * @param {string} id 城市或区域Id
 * @returns 删除的记录数
 */
export function remove(id) {
  return RSocket.rr({
    route: `dicts.region.items.${id}.delete`,
  });
}

/**
 * 获取字典中的最大编号
 * @param {string} parentId 父项标识,指定时获取父项下子项的最大标识;未指定时,获取整个字典中的最大标识
 * @returns 编号
 */
export function nextId(parentId) {
  if (parentId) {
    return RSocket.rr({ route: `dicts.region.items.${parentId}.children.next-id` });
  } else {
    return RSocket.rr({ route: 'dicts.region.items.next-id' });
  }
}

/**
 * 获取所有行政区划
 * @returns 区域列表
 */
export function allRegions(maxLevel) {
  return RSocket.rs({
    route: 'dicts.region.items',
    args: {
      search: { fullId: `^[^:]*(:[^:]+){0,${maxLevel - 1}}$` },
      pg: { page: 0, size: 1000000, sort: ['itemId;asc'] },
    },
  });
}
